package com.zjl.学习.第06章_块步骤_读操作写.C_ItemWriter写;

import com.zjl.学习.第06章_块步骤_读操作写.User;
import org.springframework.batch.item.file.FlatFileItemWriter;
import org.springframework.batch.item.file.builder.FlatFileItemWriterBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.PathResource;

/**
 *
 */
public class A1_输出平面文件 {

    @Bean
    public FlatFileItemWriter<User> itemWriter写入平面文件(){
        return new FlatFileItemWriterBuilder<User>()
                .name("itemWriter写入平面文件")
                //输出的文件,不能输出到开发平台的 resources 中，输出到 红色的  target/classes 资源下的文件中了，他不能创建，必须存在才能操作
                .resource(new ClassPathResource("item\\out_User.txt"))
                .resource(new PathResource("D:\\work\\gitee\\spring-batch\\file\\batch\\outUser.txt"))  //输出全路径文件
                .formatted()  //数据格式指定
                .format("id: %s,姓名：%s,年龄：%s")  //输出数据格式
                .names("id", "name", "age")  //需要输出属性
                .shouldDeleteIfEmpty(true)   //如果读入数据为空，输出时创建文件直接删除
                .shouldDeleteIfExists(true)  //如果输出文件已经存在，则删除
                .append(true)  //如果输出文件已经存在， 不删除，直接追加到现有文件中
                .build();
    }
}
